package database;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import model.Produto;

public class ProdutoDAO extends DAOClass{

	public ArrayList<Produto> pesquisar(String filtroNome){
		ArrayList<Produto> resultado = new ArrayList<Produto>();
		
		try{
			Connection conn = Conexao.getConexao();
			PreparedStatement pstm = conn.prepareStatement("select * from produto where nome like ?");
			pstm.setString(1, "%"+filtroNome+"%");
			
			ResultSet rs = pstm.executeQuery();
			while(rs.next()){
				Produto p = preencheProduto(rs);
				resultado.add(p);
			}
			
			rs.close();
			pstm.close();
			conn.close();
		} catch(Exception e){
			e.printStackTrace();
		}
		return resultado;
	}
	
	public Produto getById(int id) {
		Produto p = null;
		
		try{
			Connection conn = Conexao.getConexao();
			PreparedStatement pstm = conn.prepareStatement("select * from produto where id = ?");
			pstm.setInt(1, id);
			
			ResultSet rs = pstm.executeQuery();
			if(rs.next())
				p = preencheProduto(rs);
			
			rs.close();
			pstm.close();
			conn.close();
		}
		catch(Exception e){
			e.printStackTrace();
		}
		return p;
	}

	private Produto preencheProduto(ResultSet rs) throws SQLException {
		Produto p = new Produto();
		
		p.setCodigo(rs.getString("codigo"));
		p.setDescricao(rs.getString("descricao"));
		p.setId(rs.getInt("id"));
		p.setNome(rs.getString("nome"));
		p.setPreco(rs.getDouble("preco"));
		p.setImagem(rs.getString("imagem"));
		
		p.setCategoria(new CategoriaDAO().getById(rs.getInt("categoria_id")));
		
		return p;
	}

	public <T> boolean inserir(T t) {
		return false;
	}

}
